在座標平面上,給2個矩形,求覆蓋的總面積
每個矩形都由2個座標定義,分別是矩形的左下角與右上角
因為為任意的2個矩形,所以如果有重疊的地方,必須去扣掉。
那我們需要判斷需要判斷是否有重疊
以x座標看,矩形的右上角座標的x(C) 如果小於 另一個矩行的左下角座標的x(E),則沒有重疊。
以x座標看,矩形的左下角座標的x(A) 如果大於 另一個矩行的右上角座標的x(G),則沒有重疊。
以y座標看,矩形的左下角座標的x(B) 如果大於 另一個矩行的右上角座標的x(H),則沒有重疊。
以y座標看,矩形的右上角座標的x(D) 如果小於 另一個矩行的左下角座標的x(F),則沒有重疊。
有重疊的話如下
class Solution {
public:
int computeArea(int A, int B, int C, int D, int E, int F, int G, int H) {
int cover_length = 0;
int cover_width = 0;
if(E < C && G > A){
cover_length = min(C, G) - max(A,E);
}
if(F < D && H > B){
cover_width = min(D, H) - max(B,F);
}
return (C-A)*(D-B) - cover_length*cover_width + (G-E)*(H-F);
}
};